<?php
class Dica_model extends CI_Model{

    function  __construct() {
        parent::__construct();
    }
    
    function create()
    {
        $data = array(
            'descricao'         => $this->input->post('descricao', true),
            'create_time'         => now()
        );
        $this->db->insert('dica', $data);// Cadastra Dica
        $idDica = $this->db->insert_id();
        
        // Salva na Tabela usuario_has_dica o relacionamento entre usuario e dica
        $idUsuario = $this->input->post('idUsuario', true);
        $dica_has_user = array(
            'Usuario_idUsuario' => $idUsuario,
            'Dica_idDica'       => $idDica,
            'create_time'         => now()
        );
        $this->db->insert('usuario_has_dica', $dica_has_user);// Liga dica ao usuario
    }
    
    public function get_by_id($idDica)
    {
        $idDica = intval($idDica);

        $query = $this->db->where('idDica', $idDica)->limit(1)->get('dica');

        if($query->num_rows() > 0)
        {
            return $query->result();
        }
        else
        {
            return FALSE;
        }
    }

    function count_all($idUsuario)
    {
        $query = $this->db->where('Usuario_idUsuario', $idUsuario)->get('usuario_has_dica');
        
        if ($query != '')
        {
            return $query->num_rows();
        }
        else
        {
            return False;
        }
    }

    function get_all_tips_for_user($idUsuario)
    {
       $query = $this->db->where('Usuario_idUsuario', $idUsuario)->order_by('Dica_idDica', 'DESC')->get('usuario_has_dica');
       $idDica = array();
              
       foreach($query->result() as $key => $row)// Divide ids de dicas para o id do usuario
       {
           $idDica[$key] = $row->Dica_idDica;
       }

       if ($query != '')
       {
           return $idDica;
       }
       else
       {
           return False;
       }
    }
    
    function get_all_users_for_tip($idDica)
    {
       $query = $this->db->where('Dica_idDica', $idDica)->order_by('idUsuario_has_vou', 'DESC')->get('usuario_has_vou');
       
       if ($query->num_rows > 0)
       {
           foreach($query->result() as $key => $row)
           {
                $queryUser  = $this->db->where('idUsuario', $row->Usuario_idUsuario)->get('usuario');
                $data[$key] = $queryUser->result();

                $queryCidade = $this->db->where('idCidade', $data[$key][0]->Cidade_idCidade)->get('cidade');
                $cidade = $queryCidade->result();


                $queryEstado = $this->db->where('idEstado', $cidade[0]->Estado_idEstado)->get('estado');
                $estado  = $queryEstado->result();    

                $data[$key]['cidade_estado'] = $cidade[0]->nome . ' - ' . $estado[0]->nome;
           }
       
           return $data;
       }
       else
       {
           return False;
       }
    }
    
    function legal($idUsuario, $idDica, $idDonoDica)
    {
        $query = $this->db->where(array('Usuario_idUsuario' => $idUsuario, 'Dica_idDica' => $idDica))->get('usuario_has_legal');
        $row = $query->result();
        
        if(isset($row[0]->idUsuario_has_legal))
        {   
            if($row[0]->estado == 'N')
            {
                $this->db->where('idUsuario_has_legal', $row[0]->idUsuario_has_legal)->update('usuario_has_legal', array('estado' => 'Y'));
                return TRUE;
            }
            else
            {
                $this->db->where('idUsuario_has_legal', $row[0]->idUsuario_has_legal)->update('usuario_has_legal', array('estado' => 'N'));
                return TRUE;
            }
        }
        else
        {
            $data = array(
                'Dica_idDica'       => $idDica,
                'Usuario_idUsuario' => $idUsuario,
                'idDono_dica'      => $idDonoDica,
                'create_time'       => now() 
            );

            $this->db->insert('usuario_has_legal', $data);            
        }
        
    }
    
    function eu_vou($idUsuario, $idDica, $idDonoDica)
    {
        $query = $this->db->where(array('Usuario_idUsuario' => $idUsuario, 'Dica_idDica' => $idDica))->get('usuario_has_vou');
        $row = $query->result();
        
        if(isset($row[0]->idUsuario_has_vou))
        {
            
            if($row[0]->estado == 'N')
            {
                $this->db->where('idUsuario_has_vou', $row[0]->idUsuario_has_vou)->update('usuario_has_vou', array('estado' => 'Y'));
                return TRUE;
            }
            else
            {
                $this->db->where('idUsuario_has_vou', $row[0]->idUsuario_has_vou)->update('usuario_has_vou', array('estado' => 'N'));
                return TRUE;
            }
        }
        else
        {
            $data = array(
                'Dica_idDica'       => $idDica,
                'Usuario_idUsuario' => $idUsuario,
                'idDono_dica'      => $idDonoDica,
                'create_time'       => now() 
            );

            $this->db->insert('usuario_has_vou', $data);            
        }
        
    }
    
    
    function lista_legais($idUsuario)
    {
        $query = $this->db->where(array('Usuario_idUsuario' => $idUsuario, 'estado' => 'Y'))->get('usuario_has_legal');
        
        if(isset($query))
        {
            return $query->result();
        }
        else
        {
            return FALSE;
        }
    }
    
    function count_legal($idDica, $idUserLogin)
    {
        $query = $this->db->where(array('Dica_idDica' => $idDica, 'estado' => 'Y'))->get('usuario_has_legal');
        $count = $query->num_rows();
        $vou = $query->result();
        $plus = '';
        
        if($vou != array())
        {
            for($i = 0; $i < $count; $i++)
            {
                if($vou[$i]->Usuario_idUsuario == $idUserLogin)
                {
                    $plus  = '+';
                    $count = $count - 1;
                }
            }
            
            if($count > 0)
            {
                return $plus . $count;
            }
            else
            {
                return $plus;
            }
        }
        else
        {
            return FALSE;
        }
    }
    
    
    
    function lista_Vou($idUsuario)
    {
        $query = $this->db->where(array('Usuario_idUsuario' => $idUsuario, 'estado' => 'Y'))->get('usuario_has_vou');
        
        if(isset($query))
        {
            return $query->result();
        }
        else
        {
            return FALSE;
        }
    }
    
    function count_vou($idDica, $idUserLogin)
    {
        $query = $this->db->where(array('Dica_idDica' => $idDica, 'estado' => 'Y'))->get('usuario_has_vou');
        $count = $query->num_rows();
        $vou = $query->result();
        $plus = '';
        
        if($vou != array())
        {
            for($i = 0; $i < $count; $i++)
            {
                if($vou[$i]->Usuario_idUsuario == $idUserLogin)
                {
                    $plus  = '+';
                    $count = $count - 1;
                }
            }
            
            if($count > 0)
            {
                return $plus . $count;
            }
            else
            {
                return $plus;
            }
        }
        else
        {
            return FALSE;
        }
    }

    function add_mensagem_mural()
    {
        $data = array(
            'Dica_idDica'       => $this->input->post('dica', true),
            'Usuario_idUsuario' => $this->input->post('usuario', true),
            'conteudo'          => $this->input->post('mensagem', true),
            'create_time'       => now()
        );
        $this->db->insert('mensagem', $data);// Cadastra Dica
        $id = $this->db->insert_id();

        return $id;
    }
    
    function get_all_mesages_mural($idDica)
    {
       $query = $this->db->get_where('mensagem', array('Dica_idDica'=>$idDica));
       $mensagens = array();

       foreach($query->result() as $key => $row)// Divide ids de dicas para o id do usuario
       {
           $mensagens[$key] = $row->idMensagem;
       }

       if (isset($query))
       {
           return $mensagens;
       }
       else
       {
           return array();
       }
    }

    function get_by_id_mesages_mural($idDica)
    {
        $idDica = intval($idDica);

        $query = $this->db->where('idMensagem', $idDica)->limit(1)->get('mensagem');

        if($query->num_rows() > 0)
        {
            return $query->result();
        }
        else
        {
            return array();
        }
    }
}


/* End of file dica_model.php */
/* Location: ./application/models/dica_model.php */
